/**
 * 
 */
package wong.board.client.resources;

import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.CssResource;

/**
 * @author wong
 * 
 */
public interface BoardBundle extends ClientBundle {

	public interface WebkitBoardBundle extends BoardBundle {

		/**
		 * returns the style for the application.
		 * 
		 * @return
		 */
		@Source({ "wong/board/client/resources/Board.css", "wong/board/client/resources/WebkitBoard.css" })
		BoardCss boardCss();

		/**
		 * returns the style for the common widgets.
		 * 
		 * @return
		 */
		@Source({ "wong/board/client/resources/Widgets.css", "wong/board/client/resources/WebkitWidgets.css" })
		WidgetsCss widgetsCss();

	}

	public interface MozBoardBundle extends BoardBundle {

		/**
		 * returns the style for the application.
		 * 
		 * @return
		 */
		@Source({ "wong/board/client/resources/Board.css", "wong/board/client/resources/MozBoard.css" })
		BoardCss boardCss();

		/**
		 * returns the style for the common widgets.
		 * 
		 * @return
		 */
		@Source({ "wong/board/client/resources/Widgets.css", "wong/board/client/resources/MozWidgets.css" })
		WidgetsCss widgetsCss();

	}

	/**
	 * returns the style for the application.
	 * 
	 * @return
	 */
	@Source("wong/board/client/resources/Board.css")
	BoardCss boardCss();

	/**
	 * returns the style for the common widgets.
	 * 
	 * @return
	 */
	@Source("wong/board/client/resources/Widgets.css")
	WidgetsCss widgetsCss();

	/**
	 * The style for the application.
	 * 
	 * @author wong
	 * @see BoardBundle#boardCss()
	 */
	public interface BoardCss extends CssResource {

		@ClassName("board")
		String board();

		//

		@ClassName("header")
		String header();

		@ClassName("placeholder")
		String placeholder();

		//

		@ClassName("title")
		String title();

		@ClassName("title-text")
		String titleText();

		//

		@ClassName("state-valid")
		String stateValid();

		@ClassName("state-invalid")
		String stateInvalid();

		@ClassName("state-other")
		String stateOther();

		//

		@ClassName("validation")
		String validation();

		@ClassName("validation-table")
		String validationTable();

		@ClassName("validation-status")
		String validationStatus();

		@ClassName("validation-info")
		String validationInfo();

		@ClassName("validation-info-table")
		String validationInfoTable();

		@ClassName("validation-label")
		String validationLabel();

		@ClassName("validation-text")
		String validationText();

		//

		@ClassName("search")
		String search();

		@ClassName("search-item")
		String searchItem();

		@ClassName("search-input")
		String searchInput();

		@ClassName("search-options")
		String searchOptions();

		@ClassName("search-option")
		String searchOption();

		@ClassName("search-result")
		String searchResult();

		@ClassName("search-result-content")
		String searchResultContent();

		@ClassName("search-result-frames")
		String searchResultFrames();

		@ClassName("search-result-frame")
		String searchResultFrame();

		@ClassName("search-result-wrapper")
		String searchResultWrapper();

		@ClassName("search-result-close-button")
		String searchResultCloseButton();

		//

		@ClassName("development")
		String development();

		@ClassName("development-items")
		String developmentItems();

		@ClassName("development-item")
		String developmentItem();

		@ClassName("development-parameter")
		String developmentParameter();

		@ClassName("development-buttons")
		String developmentButtons();

		@ClassName("development-button")
		String developmentButton();

		//

		@ClassName("bookmarks")
		String bookmarks();

		@ClassName("bookmark-group")
		String bookmarkGroup();

		@ClassName("bookmark-group-label")
		String bookmarkGroupLabel();

		@ClassName("bookmark")
		String bookmark();

		//

		@ClassName("showcases")
		String showcases();

		@ClassName("showcase-table")
		String showcaseTable();

		@ClassName("showcase-header")
		String showcaseHeader();

		@ClassName("showcase-environment")
		String showcaseEnvironment();

		@ClassName("showcase-row")
		String showcaseRow();

		@ClassName("showcase-cell")
		String showcaseCell();

		@ClassName("showcase-type")
		String showcaseType();

		@ClassName("showcase-links")
		String showcaseLinks();

		@ClassName("showcase-link")
		String showcaseLink();

		//

		@ClassName("notes")
		String notes();

		@ClassName("note")
		String note();

		@ClassName("note-label")
		String noteLabel();

		@ClassName("note-table")
		String noteTable();

		@ClassName("note-row")
		String noteRow();

		@ClassName("note-cell")
		String noteCell();

		@ClassName("note-cell-title")
		String noteCellTitle();

		@ClassName("note-cell-text")
		String noteCellText();

	}

	/**
	 * The style for the common widgets.
	 * 
	 * @author wong
	 * @see BoardBundle#widgetsCss()
	 */
	public interface WidgetsCss extends CssResource {

		@ClassName("label")
		String label();

		//

		@ClassName("link")
		String link();

		//

		@ClassName("button")
		String button();

		@ClassName("button-toggle")
		String buttonToggle();

		@ClassName("button-toggle-selected")
		String buttonToggleSelected();

		@ClassName("buttons-container")
		String buttonsContainer();

		//

		@ClassName("input")
		String input();

		//

		@ClassName("table")
		String table();

		@ClassName("table-row")
		String tableRow();

		@ClassName("table-header")
		String tableHeader();

		@ClassName("table-data")
		String tableData();

		//

		@ClassName("container")
		String container();

		@ClassName("titled-container")
		String titledContainer();

		@ClassName("titled-container-label")
		String titledContainerLabel();

		@ClassName("titled-container-content")
		String titledContainerContent();

		//

		@ClassName("window")
		String window();

		@ClassName("window-opening")
		String windowOpening();

		@ClassName("window-minimizing")
		String windowMinimizing();

		@ClassName("window-minimized")
		String windowMinimized();

		@ClassName("window-maximizing")
		String windowMaximizing();

		@ClassName("window-maximized")
		String windowMaximized();

		@ClassName("window-closing")
		String windowClosing();

		@ClassName("window-header")
		String windowHeader();

		@ClassName("window-header-title")
		String windowHeaderTitle();

		@ClassName("window-header-buttons")
		String windowHeaderButtons();

		@ClassName("window-header-buttons-close")
		String windowHeaderButtonsClose();

		@ClassName("window-header-buttons-minimize")
		String windowHeaderButtonsMinimize();

		@ClassName("window-header-buttons-maximize")
		String windowHeaderButtonsMaximize();

		@ClassName("window-content")
		String windowContent();

		//

		@ClassName("iframe")
		String iframe();

		//

	}

}
